# encoding: utf-8

# Copyright 2008-2010 Natalia Bidart and Daniel Moisset

default_server = 'localhost'
default_port = 19500

eol = '\r\n'

# Cantidad máxima de peticiones incorrectas a tolerar.
bad_request_limit = 10
# Tiempo de espera (en segundos) a que el cliente complete una petición.
time_limit = 10.0

code_ok = 0
bad_eol = 100
bad_request = 101
internal_error = 199
invalid_command = 200
invalid_arguments = 201
file_not_found = 202
bad_offset = 203
# Constantes agregadas. Son todos errores fatales, por eso le asignamos
# valores entre 100 y 199.
bad_request_limit_error = 102
time_expired = 103

error_messages = {
	code_ok: "OK",
	# 1xx: Errores fatales (no se pueden atender más pedidos)
	bad_eol: "BAD EOL",
	bad_request: "BAD REQUEST",
	internal_error: "INTERNAL SERVER ERROR",
	bad_request_limit: "BAD REQUEST LIMIT",
	time_expired: "TIME EXPIRED",
	# 2xx: Errores no fatales (no se pudo atender este pedido)
	invalid_command: "NO SUCH COMMAND",
	invalid_arguments: "INVALID ARGUMENTS FOR COMMAND",
	file_not_found: "FILE NOT FOUND",
	bad_offset: "OFFSET EXCEEDS FILE SIZE",
	}

def valid_status(s):
	return s in error_messages.keys()

def fatal_status (s):
    assert valid_status (s)
    return 100 <= s < 199
